perm filename SLAVE.SAI[GEM,HE] blob sn#141930 filedate 1975-02-14 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "SLAVE"
C00005 00003	
C00007 00004		EXTERNAL SIMPLE PROCEDURE MKUNIV
C00009 ENDMK
C⊗;
BEGIN "SLAVE"
	REQUIRE "SYS:GLBSG7" SEGMENT_FILE;
	REQUIRE "MESGEM" SEGMENT_NAME;
	INTERNAL GLOBAL INTEGER RESULT;

	REQUIRE "GEOMED.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "GEOMES.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "UTILTY.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "EULER.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "EUCLID.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "OCCULT.REL[SAI,BGB]"	LOAD_MODULE;
	REQUIRE "BIN.REL[SAI,BGB]"	LOAD_MODULE;

	DEFINE ⊂="BEGIN";
	DEFINE ⊃="END";
	DEFINE α="COMMENT";
	DEFINE XSUBR="EXTERNAL SIMPLE PROCEDURE";
	DEFINE MSUBR="SIMPLE MESSAGE PROCEDURE";
	DEFINE ITG="INTEGER";

MSUBR !GEODPY;⊂ XSUBR GEODPY;GEODPY;⊃;
MSUBR !SHOW1(ITG WND,POG);⊂ XSUBR SHOW1(ITG WND,POG);SHOW1(WND,POG);⊃;
MSUBR !SHOW2(ITG WND,POG);⊂ XSUBR SHOW2(ITG WND,POG);SHOW2(WND,POG);⊃;

MSUBR !MKCUBE(REAL X,Y,Z);⊂ XSUBR MKCUBE(REAL X,Y,Z);MKCUBE(X,Y,Z);⊃;
MSUBR !MKCYLN(REAL X,Y,Z);⊂ XSUBR MKCYLN(REAL X,Y,Z);MKCYLN(X,Y,Z);⊃;
MSUBR !MKBALL(REAL X,Y,Z);⊂ XSUBR MKBALL(REAL X,Y,Z);MKBALL(X,Y,Z);⊃;

MSUBR !TRANSL(ITG Q;REAL X,Y,Z);⊂ XSUBR TRANSL(ITG Q;REAL X,Y,Z);TRANSL(Q,X,Y,Z);⊃;
MSUBR !ROTATE(ITG Q;REAL X,Y,Z);⊂ XSUBR ROTATE(ITG Q;REAL X,Y,Z);ROTATE(Q,X,Y,Z);⊃;
MSUBR !SHRINK(ITG Q;REAL X,Y,Z);⊂ XSUBR SHRINK(ITG Q;REAL X,Y,Z);SHRINK(Q,X,Y,Z);⊃;

MSUBR !INB3D(STRING F);⊂ XSUBR INB3D(STRING F);INB3D(F);⊃;
MSUBR !INCAM(STRING F);⊂ XSUBR INCAM(STRING F);INCAM(F);⊃;
MSUBR !FDNAME(STRING F);⊂ XSUBR FDNAME(STRING F);FDNAME(F);⊃;

MSUBR !ECW(ITG E,FV);⊂ XSUBR ECW(ITG E,FV);ECW(E,FV);⊃;
MSUBR !ECCW(ITG E,FV);⊂ XSUBR ECCW(ITG E,FV);ECCW(E,FV);⊃;
MSUBR !OTHER(ITG E,FV);⊂ XSUBR OTHER(ITG E,FV);OTHER(E,FV);⊃;

MSUBR !VCW (ITG E,F);⊂ XSUBR VCW (ITG E,F);VCW (E,F);⊃;
MSUBR !VCCW(ITG E,F);⊂ XSUBR VCCW(ITG E,F);VCCW(E,F);⊃;
MSUBR !FCW (ITG E,V);⊂ XSUBR FCW (ITG E,V);FCW (E,V);⊃;
MSUBR !FCCW(ITG E,V);⊂ XSUBR FCCW(ITG E,V);FCCW(E,V);⊃;

MSUBR !BDET(ITG Q);⊂ XSUBR BDET(ITG Q);BDET(Q);⊃;
MSUBR !BATT(ITG Q1,Q2);⊂ XSUBR BATT(ITG Q1,Q2);BATT(Q1,Q2);⊃;
MSUBR !INVERT(ITG E);⊂ XSUBR INVERT(ITG E);INVERT(E);⊃;
MSUBR !EVERT(ITG Q);⊂ XSUBR EVERT(ITG Q);EVERT(Q);⊃;

MSUBR !MKBFV;⊂ XSUBR MKBFV;MKBFV;⊃;
MSUBR !MKEV(ITG F,V);⊂ XSUBR MKEV(ITG F,V);MKEV(F,V);⊃;
MSUBR !ESPLIT(ITG E);⊂ XSUBR ESPLIT(ITG E);ESPLIT(E);⊃;
MSUBR !MKFE(ITG V1,F,V2);⊂ XSUBR MKFE(ITG V1,F,V2);MKFE(V1,F,V2);⊃;
MSUBR !GLUEE(ITG F1,V1,F2,V2);⊂ XSUBR GLUEE(ITG F1,V1,F2,V2);GLUEE(F1,V1,F2,V2);⊃;

MSUBR !KLBFEV(ITG Q);⊂ XSUBR KLBFEV(ITG Q);KLBFEV(Q);⊃;
MSUBR !SWEEP(ITG F,FLG);⊂ XSUBR SWEEP(ITG F,FLG);SWEEP(F,FLG);⊃;
MSUBR !MKCOPY(ITG Q);⊂ XSUBR MKCOPY(ITG Q);MKCOPY(Q);⊃;
	EXTERNAL SIMPLE PROCEDURE MKUNIV;
	INTEGER MESS;
	OUTCHR("*");
	PUT_DATA(0,0,"SLAVE");
	MKUNIV;

WHILE TRUE DO
BEGIN
	MESS ← GET_ENTRY('120,NULL,"SLAVE",NULL);
	MESS ← QUEUE('600,MESS);
END;
END "SLAVE";